import pandas as pd
Para essa visualização utilizaremos os dados gerados a partir do relatório 1.
df = pd.read_csv('../data/output/csv/relatorio_1')
df = df.drop(["Unnamed: 0"], axis=1)
df.head(3)
| ano | municipio | modalidade | licitacao | valor | vinculo_em_uso | cnpjs | quantidade_cnpjs | quantidade_vinculos | densidade | qtd_cliques | tamanho_max_clique | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2015 | Cascalho Rico | Pregão Presencial | 746396 | 1190070.0 | 1 | ['19644907000111', '19703568000105', '19644880... | 12 | 0 | 0.0 | 0 | 1 |
| 1 | 2015 | Cascalho Rico | Convite | 746397 | 32000.0 | 1 | ['17320374000197'] | 1 | 0 | 0.0 | 0 | 1 |
| 2 | 2015 | Cascalho Rico | Pregão Presencial | 746398 | 989721.6 | 1 | ['08655344000140', '65237851000106'] | 2 | 0 | 0.0 | 0 | 1 |
import plotly.express as px
fig = px.histogram(df, x='qtd_cliques', log_y=True,
title="Número licitações por número de cliques numa licitação",
labels={
'qtd_cliques' : "número de cliques numa licitação"
}
)
fig.update_xaxes(visible=True, showticklabels=True, tickformat=",d")
fig.update_yaxes(title="número de licitações")
fig.show()
Agora faremos a visualização de vínculos por CNPJ e estudaremos a distribuição desses valores.
d: dict = {}
for row in df.values:
cnpj1 = row[0]
cnpj2 = row[1]
d[cnpj1] = 0
d[cnpj2] = 0
for row in df.values:
cnpj1 = row[0]
cnpj2 = row[1]
d[cnpj1] += 1
d[cnpj2] += 1
Transformamos esse dicionário em um DataFrame para a geração de visualizações.
df_b = pd.DataFrame.from_dict(d, orient='index', columns=["vinculos"])
df_b.head(5)
| vinculos | |
|---|---|
| 2015 | 47091 |
| Cascalho Rico | 132 |
| Muriaé | 1505 |
| Coronel Fabriciano | 789 |
| 2016 | 40108 |
import plotly.express as px
fig = px.histogram(df_b, x='vinculos', log_y=True,
title="Número de CNPJs por quantidade de vínculos",
labels={
'vinculos' : "número de vínculos"
}
)
fig.update_xaxes(visible=True, showticklabels=True)
fig.update_yaxes(title='número de cnpjs')
fig.show()